package cn.itcast.nems.manager.icc;

import cn.itcast.nems.manager.icc.model.DictionaryEditModel;
import cn.itcast.nems.manager.util.ChineseCharacterUtil;
import cn.itcast.nems.manager.util.OkHttpUtil;
import com.alibaba.fastjson.JSON;
import org.springframework.util.StringUtils;

@Deprecated
public class DictionaryManager {

    /**
     * 分页查询
     *
     * @param domain     接口域名
     * @param queryModel 参数实体
     * @return 响应正文
     * @throws Exception 异常
     */
    public static String findPageList(String domain, String queryModel) throws Exception {
        return OkHttpUtil.doPost(domain + "/page/list", queryModel);
    }
    /**
     * 根据条件查询字典列表
     *
     * @param domain     接口域名
     * @param queryModel 参数实体
     * @return 响应正文
     * @throws Exception 异常
     */
    public static String findListByParam(String domain, String queryModel) throws Exception {
        return OkHttpUtil.doPost(domain + "/list", queryModel);
    }

    /**
     * 新增
     *
     * @param domain    接口域名
     * @param editModel 参数实体
     * @return 响应正文
     * @throws Exception 异常
     */
    public static String add(String domain, DictionaryEditModel editModel) throws Exception {
        // 如果 code 没有手动设置, 需要通过程序自动生成
        if(!StringUtils.hasText(editModel.getCode())) {
            editModel.setCode(ChineseCharacterUtil.toPinyin(editModel.getName(), Boolean.FALSE));
        }
        return OkHttpUtil.doPost(domain + "/add", JSON.toJSONString(editModel));
    }

    /**
     * 根据ID查询字典信息
     * @param domain 域名
     * @param id 字典ID
     * @return 字典详情
     * @throws Exception 异常
     */
    public static String findId(String domain, Integer id) throws Exception {
        return OkHttpUtil.doGet(domain + "/"+id, null);
    }

    /**
     * 修改
     *
     * @param domain    接口域名
     * @param editModel 参数实体
     * @return 响应正文
     * @throws Exception 异常
     */
    public static String update(String domain, DictionaryEditModel editModel) throws Exception {
        // code  一旦生成,禁止修改  [2023-9-18]
        return OkHttpUtil.doPost(domain + "/update", JSON.toJSONString(editModel));
    }

    /**
     * 启用/禁用
     *
     * @param domain    接口域名
     * @param editModel 参数实体
     * @return 响应正文
     * @throws Exception 异常
     */
    public static String updateState(String domain, DictionaryEditModel editModel) throws Exception {
        return OkHttpUtil.doPost(domain + "/state", JSON.toJSONString(editModel));
    }
}
